МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Кафедра САПР
Лабораторна робота № 9
“ АРИФМЕТИЧНІ ОПЕРАЦІЇ МІКРОПРОЦЕСОРА Intel 8086(80286) ”
Виконав
Ст..гр. КН – 3
ЛЬВІВ 2008
1. МЕТА РОБОТИ
Вивчити основні шляхи програмування портів клавіатури на ЕОМ з мікропроцесором Intel 8086(80286).
2. КОРОТКІ ТЕОРЕТИЧНІ ВІДОМОСТІ.
Одним з найважливіших пристроїв персонального комп’ютера є клавіатура, яка призначена для інтерфейсу між користувачем та комп’ютером. На даний час існує три основні типи клавіатур. Це клавіатура для комп’ютерів ІВМ РС/ХТ, яка містить 84 клавіші та 101-клавішна клавіатура для ІВМ РС/АТ. Деякі клавіатури містять переми-
_ EMBED PBrush ___
кач режиму роботи (ХТ/АТ). В якості контролера виступає процесор Intel 8042, який призначений для обміну між клавіатурою та CPU.
Всі горизонтальні лінії матриці підключені через резистор до джерела живлення +5В. Контролер клавіатури містить два порти - вхідний і вихідний. Вхідний порт підключений до горизонтальних ліній матриці (Х0-Х4), а вихідний - до вертикальних (Y0-Y4)
Принцип роботи даного пристрою полягає в наступному. Контролер почергово на вертикальних лініях встановлює значення логічного нуля. Потім він почергово опитує горизонтальні лінії. У випадку, коли натиснутих клавіш не має, рівень напруги на всіх горизонтальних лініях буде відповідати логічній 1 (всі ці лінії підключені ло джерела живлення +5V через резистори). У випадку, коли натиснута клавіша - на відповідній горизотальній лінії буде логічний нуль. На наступному кроці визначається ASCII- код натиснутої клавіші.
Для роботи з клавіатурою використовують порти з адресами 60Н та 61Н. Порт 60Н, при читанні, містить сканкод останньої натисненої клавіші.
IN AL, 60H
При використанні порта 60Н на запис програма додатково отримує наступні можливості:
-встановлення затримки перед переходом клавіатури в режимі автоповтору;
-встановлення періоду генерації скан-коду в режимі автоповтору;
-керування світлодіодами для клавіш -Scroll Lock, Num Lock, Caps Lock.
Для встановлення характеристик автоповтору в порт 60Н необхідно записати код команди 0F3Н, потім байт, що визначає характеристики режиму:
біти значення 0-4 5-6
7 Період автоповтору
0-30.0; 0АН - 10.0;
1-26.7; 0DH - 9.2;
2-24.0; 19H - 7.5;
4-20.0; 14H - 5.0;
8-15.0; 1FH -2.0.
Затримка включення режиму автоповтору:
00 - 250
01 - 500
10 - 750
11 -1000
Зарезервоване (має бути рівне 0)
Період автоповтору визначає кількість посилок скан-коду, генерованих процесором клавіатури за одну секунду. Можна використовувати не лише ті значення, які приведені в таблиці, але й проміжні (наприклад 9 або 16Н).
При керуванні світлодіодама використовують команду OEDH. Потім в порт 60Н необхідно записати байт, що має наступний формат:
біти значення 0
1
2
3-7 1 - включити світодіод Scroll Lock
1 - включити світодіод Num Lock
1 - включити світодіод Caps Lock
не використовується
Використання портів при роботі з клавіатурою є дуже громіздкою роботою для програміста, тому більш зручно використати вже готові процедури і функції BIOS(Basic Input/Output System- Базова Система Вводу/Виводу), які розміщені в постійному запам’ятовуючому пристрої комп’ютера.
Для вводу з клавіатури використовують переривання BIOS INT 16H та перевання DOS INT 21H.
MOV AH, номер функції
INT 16h
Функція 00h - означає чекати до того часу, поки користувач не натисне клавішу. В результаті, у регістрі AL, отримаємо код ASCII символа, а якщо в AL нуль, то в AH - розширений код ASCII.
Функція 01h - перевіряє готовність символа на ввід та виводить його, якщо він готовий. Контроль організований по значенню прапорця нуля, якщо клавішу натиснули, то ZF=0. В іншому випадку -ZF=1, тобто клавішу не натискали і черга пуста (ця функція не забирає символ з черги, а тільки перевіряє його...